package question10;

/**
 * @author yuan
 * @date 2021/12/15
 */
public class Solution {
    public static void main(String[] args) {

    }

    /**
     * 给你一个字符串 s和一个字符规律 p，请你来实现一个支持 '.'和'*'的正则表达式匹配。
     *
     * '.' 匹配任意单个字符
     * '*' 匹配零个或多个前面的那一个元素
     * 所谓匹配，是要涵盖整个字符串s的，而不是部分字符串。
     * @param s
     * @param p
     * @return
     */
    public boolean isMatch(String s, String p) {

        // 判断 s 或 p 为空串的情况
        if (s.length() == 0) return true;
        if (p.length() == 0) return false;

        // 待匹配字符串与字符规律一致
        if (s.equals(p)) return true;

        // 待匹配字符串转换为字节数组
        char[] sArray = s.toCharArray();
        // 字符规律转换为字节数组
        char[] pArray = p.toCharArray();

        // 如果匹配规律字符串开头 为 .*，则匹配成功
        if (pArray[0] == '.' && pArray[1] == '*') return true;

        // 其他情况

        return false;
    }
}
